#ifndef DRAWINGTOOL_H
#define DRAWINGTOOL_H

#include <QObject>
#include <QString>
#include <QCursor>
#include <QMouseEvent>

//Инструмент рисования
class DrawingTool : public QObject
{
    Q_OBJECT

protected:
    //Имя
    QString name;

    //Категория
    QString category;

    //Курсор
    QCursor toolCursor;

public:
    DrawingTool();

    //Имя инструмента
    virtual QString getName();

    //Категория
    virtual QString getCategory();

    //Курсор инструмента
    virtual QCursor getToolCursor();

    //Активация
    virtual void onActivate();

    //Деактивация
    virtual void onDeactivate();

    //При нажатии на кнопку мыши
    virtual void onMouseDown(QWidget* panel, QMouseEvent e);

    //После нажатия на кнопку мыши
    virtual void onMouseUp(QWidget* panel, QMouseEvent e);

    //При движении мыши
    virtual void onMouseMove(QWidget* panel, QMouseEvent e);

    //При отрисовке схемы
    virtual void onPaintScheme(QWidget* panel, QPainter& painter);
};

#endif // DRAWINGTOOL_H
